Databases can be difficult to scale as demands on a database increase. Many conventional horizontal and vertical scaling techniques may attempt to solve some of the problems of scaling. Still, when placing large amounts of data into a database, whether horizontally or vertically scaled, the database may exceed the input/output capacity of its host system. For example, the database may be input/output bound to the number of connections available to the database. In other cases, the database may be input/output bound to the amount of memory available for transactions. As a result, clients may experience periods of database unavailability when the database is busy.
For example, long running transactions of seconds or minutes may require significant input/output overhead while locking clients from the database for large amounts of time. The input/output bounding can prevent the scaling of databases to receive and contain large amounts of data. To ease the scaling problem, some database managers may use larger database hardware with more capabilities, such as memory and input/output throughput.